﻿using System;
using System.IO;
using System.Windows.Forms;
using Sorteo.BusinessComponents;

namespace Sorteo.UI
{
    public partial class CargarConcursantesForm : BaseForm
    {
        public CargarConcursantesForm()
        {
            InitializeComponent();
        }

        #region Event Handlers

        private void CargarConcursantesForm_Load(object sender, EventArgs e)
        {
            LoadPromociones();
        }

        private void cancelarButton_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void searchFileButton_Click(object sender, EventArgs e)
        {
            if (openFileDialog.ShowDialog() == DialogResult.OK)
                archivoTextBox.Text = openFileDialog.FileName;
        }

        private void aceptarButton_Click(object sender, EventArgs e)
        {
            try
            {
                if (!File.Exists(archivoTextBox.Text))
                    ShowError("El archivo seleccionado no existe.  Seleccione nuevamente el archivo");
                else
                {
                    Cursor = Cursors.WaitCursor;
                    BCPromocion.CargarConcursantesDesdeExcel(archivoTextBox.Text, Convert.ToInt32(promocionesComboBox.SelectedValue));
                    Cursor = Cursors.Arrow;
                    ShowConfirmation("El archivo fue cargado con éxito y se calcularon las acciones correspondientes");
                    Close();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ocurrió un error al cargar el archivo\r\nDetalle: " + ex.Message);
            }
            finally
            {
                Cursor = Cursors.Arrow;
            }
        }

        #endregion

        #region Methods: Non-Public

        private void LoadPromociones()
        {
            var promociones = BCPromocion.GetActiveList();
            promocionesComboBox.DataSource = promociones;
            promocionesComboBox.DisplayMember = "Nombre";
            promocionesComboBox.ValueMember = "Id";
        }

        #endregion
    }
}